package com.easyim.imserver.config;

import cn.hutool.core.lang.Snowflake;

import cn.hutool.core.util.RandomUtil;
import com.easyim.imserver.utils.NodeInfoUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class IdUtilConfig {


    @Bean()
    public Snowflake idUtil(){
        //雪花算法的机器位 目前这个最大就是32 我们根据自己的ip以及一个随机数生成 ip转化的整数有点大 所以要换成低于32的 所以要&运算一下
        Integer ipInt = NodeInfoUtils.getLocalNodeId();
        int randomInt = RandomUtil.randomInt(32);
        Snowflake snowflake = new Snowflake(ipInt & 0x1F , randomInt);
        return snowflake;
    }
}
